# 容器
# 容器是可以储存多个元素的一种数据类型, 在python中包括了字符串, 列表, 元组, 集合, 字典

# 解包: 指将容器中的元素分别赋值给多个变量的过程 (容器类型的数据都支持解包)
# 列表解包
# a, b, c = [1, 2, 3]
# 元组解包
# a, b, c = (1, 2, 3)

# 换位
# a = 1
# b = 2
# 不用解包时如何交换位置
# tmp = a
# a = b
# b = tmp
# print(a, b)

# 使用解包后
# a, b = b, a
# print(a, b)

# 操作容器的内置函数
# s = "123"
# l = [1, 2, 3]
# t = (1, 2, 3)
# c = {1, 2, 3}
# d = {"a": 1, "b": 2, "c": 3}

# len(), 计算容器中元素个数
# print(len(s))
# print(len(l))
# print(len(t))
# print(len(c))
# print(len(d))

# max() min(), 分别返回容器中元素最大值 或 最小值
# print(max(s))   # 除了字典之外的类型, 直接返回值
# print(min(s))
# print(max(d))   # 字典类型, 返回的是值所对应的key
# print(min(d))

# del, 和垃圾回收机制有关, del 可以删除变量(的引用, 引用次数计数器为0时, 垃圾回收机制自动释放内存)
# 有两种用法: 如, del l[0] 或 del(l[0])
#     del + 空格
#     del()
# 对于不可变数据类型, 可以删变量, 不能删元素
# del s[0]    # 会报错
# del s
# 对于可变的数据类型, 如: 列表, 字典... 可以删除变量, 也可以删除单个元素
# del l[0]
# del l
# del d["a"]
# del d
# 集合比较特殊, 集合虽然可变, 但是无序, 不能使用下表, 只能删除变量

# 多维列表/元组的访问
l = [[1, 2], [3, 4]]
print(l[0])
print(l[0][0])
print(l[1][1])





